今天Heroku大當機0rz,寫一點Line API的使用教學
LineSDK已經將大部分的實作功能與資料模型都包入了,這可以加快開發的速度:
line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN')
handler = WebhookHandler('YOUR_CHANNEL_SECRET')
bot_info = line_bot_api.get_bot_info()
print(bot_info.display_name)
print(bot_info.user_id)
print(bot_info.basic_id)
print(bot_info.premium_id)
print(bot_info.picture_url)
print(bot_info.chat_mode)
print(bot_info.mark_as_read_mode)
回覆訊息
line_bot_api.reply_message('<reply_token>', TextSendMessage(text='Hello World!'))
推送訊息
try:
line_bot_api.push_message('<to>', TextSendMessage(text='Hello World!'))
except LineBotApiError as e:
# error handle
免費帳號有單月500則推送訊息的限制,回覆則不用錢
在使用的時候,知道使用者的userid後,就能夠藉此取得使用者的顯示名稱(暱稱)、系統的使用語言、大頭貼、狀態消息,這可以提供一點使用者的資訊
profile = line_bot_api.get_profile(user_id)
print(profile.display_name)
print(profile.user_id)
print(profile.picture_url)
print(profile.status_message)
這邊要注意一點,Line的JSON變數命名與Python不同,例如使用者ID,在Line送過來的Json body內以events.source.userID方式存放,但在Python,則為event.source.user_id,在資料變數命名上有許多的不同需要確認
如圖片、影片、音訊、檔案等
message_content = line_bot_api.get_message_content(message_id)
with open(file_path, 'wb') as fd:
for chunk in message_content.iter_content():
fd.write(chunk)
通常會是格式或參數錯誤,錯誤說明可以參考
try:
line_bot_api.push_message('to', TextSendMessage(text='Hello World!'))
except linebot.exceptions.LineBotApiError as e:
print(e.status_code)
print(e.request_id)
print(e.error.message)
print(e.error.details)
今天主要在翻API文件,還有heroku在搞,明天會把對話紀錄生出來.....